snippet / "single line comment" b
// ${0}
endsnippet

snippet // "multiline comment" b
/* ${0} */
endsnippet

snippet usn "using namepace " b 
using namespace ${1:std};${0}
endsnippet

snippet inc "include std" b
#include <${1:iostream}>${0}
endsnippet

snippet incc "include custom" b
#include "${1}.h"${0}
endsnippet

snippet main "main function" b
int main() {
	return 0;
}
endsnippet

snippet df "define" b
#define ${1}
endsnippet

snippet ifndf "ifndef defien endif" b
#ifndef ${1:project}_${2:file_name}_H_
#define $1_$2_H_
${0}
#endif // end #define $1_$2_H_
endsnippet

# class
snippet cla "class" b
class ${1:class_name} {
	$1();
	~$1();
	$1(const $1 & other);
	$1($1 && moved);
	${0}
};
endsnippet

snippet clas "class extend" b
class ${1:class_name} : ${2:public} ${3:base_class_name}{
	$1();
	~$1();
	$1(const $1 & other);
	$1($1 && moved);
	${0}
};
endsnippet

############################ basic statement #####################################
snippet if "if statement" b
if (${1}) {
	${2}
}${0}
endsnippet

snippet ifel "if else statement" b
if (${1}) {
	${2}
}
else {
	${3}
}${0}
endsnippet

snippet whi "while statement" b
while (${1}) {
	${2}
}${0}
endsnippet

snippet dow "do {} while();" b
do {
	${1}
} while (${2});{$0}
endsnippet

############################ little trick ########################################
snippet kv "key = value" b
${1} = ${2}
endsnippet

snippet eq? " == " i
${1} == ${2}
endsnippet

snippet neq? " != " i
${1} != ${2}
endsnippet
